import {getToken,setToken,removeToken} from '@/utils/auth'
import { getUserInfoAPI, login } from '@/api/user'

const state = {
    // 设置初始值
    token: getToken(),
    // 用户信息
    userInfo:{}
}

// 修改state
const mutations = {
    setToken(state,token){
        setToken(token)
        state.token = token
    },
    removeToken(state){
        state.token = null,
        removeToken()
    },
    setUserInfo(state,userInfo){
        state.userInfo = userInfo
    },
   
}

// 请求数据，调用mutations
const actions = {
    async login(context,data){
        // console.log(data);
        // 发送请求获取数据
        const token = await login(data)

        // 调用mutations修改state的方法
        context.commit('setToken',token)
    },
    // 获取用户数据
    async getUserInfo(context){
        // 调用API获取用户信息
       const res = await getUserInfoAPI() 
       // 修改用户数据
       context.commit('setUserInfo',res)
    },
     // 退出登录，删除token
     logout(context){
        context.commit('removeToken')
        context.commit('setUserInfo',{})
     }
}

export default {
    // 开启命名空间,在调用该页面的属性时需要带上模块名
    namespaced:true,
    state,
    mutations,
    actions
}